Method and system for rearranging assets for mobile robots

ABSTRACT

A method for navigating a robot within an environment based on a planned route includes providing the planned route to the robot, where the planned route is based on a destination of the robot and an origin of the robot. The method includes determining whether an object obstructs the robot as the robot travels along the planned route, where the environment includes the object. The method includes moving the object from the planned route in response to the robot obstructing the object.

FIELD

The present disclosure relates to methods and systems for rearrangingassets for mobile robots.

BACKGROUND

The statements in this section merely provide background informationrelated to the present disclosure and may not constitute prior art.

A manufacturing environment can include one or more mobile robots thatperform various automated tasks, such as moving materials and toolswithin the manufacturing environment. The mobile robots may autonomouslytravel to various locations within the manufacturing environment toperform the various automated tasks. However, the complex layout of themanufacturing environment resulting from one or more obstacles thereinmay cause the robot to travel around the obstacles as it travels to agiven destination, thereby inhibiting the efficiency of the automatedtasks it performs.

These issues with the use of mobile robots in a manufacturingenvironment, among other issues with mobile robots, are addressed by thepresent disclosure.

SUMMARY

This section provides a general summary of the disclosure and is not acomprehensive disclosure of its full scope or all of its features.

The present disclosure provides a method or navigating a robot within anenvironment based on a planned route includes providing the plannedroute to the robot, where the planned route is based on a destination ofthe robot and an origin of the robot. The method includes determiningwhether an object obstructs the robot as the robot travels along theplanned route, where the environment includes the object. The methodincludes moving the object from the planned route in response to therobot obstructing the object.

In some forms, the object includes a movement system for moving theobject to various positions within the environment, and moving theobject further includes instructing the object to autonomously move to aposition from among the various positions.

In some forms, moving the object further includes instructing a secondrobot to move the object.

In some forms, the method further includes determining whether theobject is available to be moved based on at least one of state dataassociated with the object and sensor data obtained from one or moreinfrastructure sensors. The method further includes moving the objectwhen the robot is proximate the object in response to a determinationthat the object is available to be moved.

In some forms, the method further includes defining an alternative routebased on the destination and a location of the object in response to adetermination that the object is not available to be moved.

In some forms, the state data indicates whether a second robot isrequesting to move the object, whether the object is moveable, or acombination thereof. In some forms, the sensor data corresponds to anarea surrounding the object and indicates whether the object can bemoved based on one or more additional objects in the area surroundingthe object.

In some forms, the sensor data is image data obtained from theinfrastructure sensors.

The present disclosure also provides a method for navigating a robotwithin an environment based on a planned route, where the planned routeis based on a destination of the robot and an origin of the robot. Themethod includes providing the planned route to the robot, where theplanned route is based on a destination of the robot and an origin ofthe robot. The method includes determining whether an object obstructsthe robot as the robot travels along the planned route, where theenvironment includes the object. The method includes determining whetherthe object is available to be moved and moving the object in response tothe object obstructing the robot and in response to the object beingavailable to be moved.

In some forms, the object includes a movement system for moving theobject to various positions within the environment, and where moving theobject further comprises instructing the object to autonomously move toa position from among the various positions.

In some forms, moving the object further includes instructing a secondrobot to move the object.

In some forms, where determining whether the object is available to bemoved is further based on at least one of state data associated with theobject and sensor data obtained from one or more infrastructure sensors.

In some forms, the state data indicates whether a second robot isrequesting to move the object, whether the object is moveable, or acombination thereof. The sensor data corresponds to an area surroundingthe object and indicates whether the object can be moved based on one ormore additional objects in the area surrounding the object.

In some forms, the sensor data is image data obtained from theinfrastructure sensors.

In some forms, the state data indicates a hierarchal relationshipbetween the robot and the second robot.

In some forms, determining whether the object is available to be movedfurther includes determining whether the hierarchal relationshipindicates the second robot has a movement priority over the robot. Themethod includes, in response to the hierarchal relationship indicatingthat the second robot has the movement priority over the robot,determining whether the second robot has completed a request to move theobject.

In some forms, the method further includes moving the object to anoriginal position in response to the second robot completing the requestto move the object.

In some forms, the method further includes defining an alternative routebased on the destination and a location of the object in response to adetermination that the object is not available to be moved.

The present disclosure also provides a system for navigating a robotwithin an environment based on a planned route. The system includes aprocessor communicably coupled to the robot and a nontransitorycomputer-readable medium including instructions that are executable bythe processor. The instructions include providing a destination for therobot within the environment and providing the planned route to therobot, where the planned route is based on the destination of the robotand an origin of the robot. The instructions include determining whetherthe object obstructs the robot as the robot travels along the plannedroute, where the environment includes the object. The instructionsinclude moving the object in response to the object obstructing therobot.

In some forms, the instructions for moving the object further includesat least one of instructing the object to autonomously move to aposition from among the various positions and instructing a second robotto move the object.

In some forms, the instructions further include determining whether theobject is available to be moved based on at least one of stateassociated with the object and sensor data obtained from one or moreinfrastructure sensors and moving the object when the robot is proximatethe object in response to a determination that the object is availableto be moved.

Further areas of applicability will become apparent from the descriptionprovided herein. It should be understood that the description andspecific examples are intended for purposes of illustration only and arenot intended to limit the scope of the present disclosure.

DRAWINGS

In order that the disclosure may be well understood, there will now bedescribed various forms thereof, given by way of example, referencebeing made to the accompanying drawings, in which:

FIG. 1A illustrates a manufacturing environment having a robot and acentral control system in accordance with the teachings of the presentdisclosure;

FIG. 1B is a functional block diagram of the robot and the centralcontrol system in accordance with the teachings of the presentdisclosure;

FIG. 2A illustrates a planned route for the robot based on an origin anda destination within the manufacturing environment in accordance withthe teachings of the present disclosure;

FIG. 2B illustrates the robot interacting with a first object as ittravels along a planned route in accordance with the teachings of thepresent disclosure;

FIG. 2C illustrates the robot interacting with a second object as ittravels along a planned route in accordance with the teachings of thepresent disclosure;

FIG. 2D illustrates the robot interacting with a third object as ittravels along a planned route in accordance with the teachings of thepresent disclosure;

FIG. 3 illustrates an example control routine in accordance with theteachings of the present disclosure; and

FIG. 4 illustrates another example control routine in accordance withthe teachings of the present disclosure.

The drawings described herein are for illustration purposes only and arenot intended to limit the scope of the present disclosure in any way.

DETAILED DESCRIPTION

The following description is merely exemplary in nature and is notintended to limit the present disclosure, application, or uses. Itshould be understood that throughout the drawings, correspondingreference numerals indicate like or corresponding parts and features.

The present disclosure provides for a control system for one or morerobots within a manufacturing environment. The control system plans aroute for a robot within the manufacturing environment based on a givendestination and a current position of the robot (i.e., the origin of therobot). As the robot travels along the planned route, the control systemdetermines whether an object within the manufacturing environmentobstructs the robot. If the object obstructs the robot, the controlsystem generates a command to move the object and thereby, reduces thedistance traveled by the robot and the required time to arrive at thedestination. As such, the efficiency of various manufacturing processesthat utilize the robot improves.

Referring to FIGS. 1A-1B, a manufacturing environment 10 formanufacturing a component (e.g., a vehicle) is provided. Themanufacturing environment 10 generally includes robots 20, a pluralityof objects 30, a bin 40, a workstation 50, infrastructure sensors 60,and a central control system 100. While the central control system 100is illustrated as part of the manufacturing environment 10, it should beunderstood that the central control system 100 may be positionedremotely from the manufacturing environment 10 in other forms. In oneform, the robots 20, the objects 30, the infrastructure sensors 60,and/or the central control system 100 are communicably coupled using awireless communication protocol (e.g., a Bluetooth®-type protocol, acellular protocol, a wireless fidelity (Wi-Fi)-type protocol, anear-field communication (NFC) protocol, an ultra-wideband (UWB)protocol, among others).

In one form, the robots 20 are mobile robots that are partially orfully-autonomous and are configured to autonomously move to variouslocations of the environment 10, as instructed by the central controlsystem 100. To autonomously move itself and as shown in FIG. 1B, therobots 20 each include a robot movement system 22 to control variousmovement systems of the robot 20 (e.g., propulsion systems, steeringsystems, and/or brake systems) via actuators 24 and based on one or moreautonomous navigation sensors 26 (e.g., a global navigation satellitesystem (GNSS) sensor, an imaging sensor, a local position sensor, amongothers). Furthermore, the robot movement systems 22 are configured tooperate the actuators 24 to control the motion of one or more roboticlinks (e.g., robotic arms) attached thereto and thereby perform one ormore automated tasks defined in a robot task database 28. The one ormore automated tasks may refer to one or more motions the robot 20performs to achieve a desired result (e.g., removing a part from the bin40).

To perform the functionality described herein, the robot movementsystems 22 may include one or more processor circuits that areconfigured to execute machine-readable instructions stored in one ormore nontransitory computer-readable mediums, such as a random-accessmemory (RAM) circuit and/or read-only memory (ROM) circuit. The robotmovement systems 22 may also include other components for performing theoperations described herein such as, but not limited to, movementdrivers and systems, transceivers, routers, and/or input/outputinterface hardware.

While the manufacturing environment 10 shown in FIGS. 1A-1B illustratesrobots 20, it should be understood that the manufacturing environment 10can include various other unmanned vehicles in addition to or in placeof the robots 20 in other forms. As an example, the manufacturingenvironment 10 can include drones, automated guided vehicles, amongothers, that are similarly configured as the robots 20 (e.g., the dronesinclude a movement system to control autonomous movement throughout themanufacturing environment 10).

In one form, at least some of the objects 30 are moveable and include anobject movement system 32 configured to control the movement of theobject 30 between various positions within the manufacturing environment10. As an example, the object movement system 32 may control one or moreactuators 34 to autonomously move the object 30 in response to a commandfrom the central control system 100 and/or a command from the robot 20to move the object 30, as described below in further detail.Furthermore, the object movement system 32 is configured to broadcaststate data to the central control system 100 indicating whether theobject 30 is available to be moved. As an example, the state data mayindicate whether the object 30 is moveable, whether a robot 20 isrequesting to move the object 30, among others. To perform thefunctionality described herein, the object movement system 32 mayinclude one or more processor circuits that are configured to executemachine-readable instructions stored in one or more nontransitorycomputer-readable mediums, such as a RAM circuit and/or ROM circuit. Theobject movement system 32 may also include other components forperforming the operations described herein, such as, but not limited to,movement drivers and systems, transceivers, routers, and/or input/outputinterface hardware.

In one form, the infrastructure sensors 60 are imaging sensors thatobtain imaging data of the manufacturing environment 10 and detect therobots 20 and the objects 30 within the manufacturing environment 10.The infrastructure sensors 60 may include a two-dimensional camera, athree-dimensional camera, an infrared sensor, a radar scanner, a laserscanner, a light detection and ranging (LIDAR) sensor, an ultrasonicsensor, among others. In one form, the infrastructure sensors 60 aredisposed on an infrastructure element within the manufacturingenvironment 10, such as, but not limited to, a tower, a light pole, abuilding, a sign, drones, additional robots, automated guided vehicles,among other fixed and/or moveable elements of the manufacturingenvironment 10.

In one form, the central control system 100 includes a location module102, an object location database 104, an object state module 106, anobject state database 108, a hierarchy module 110, and a hierarchydatabase 112. Furthermore, the central control system 100 includes, amanufacturing process module 114, a robot selection module 116, a robotpath module 118, an autonomous navigation module 120, and an objectmovement module 122. It should be readily understood that any one of thecomponents of the central control system 100 can be provided at the samelocation or distributed at different locations and communicably coupledaccordingly. To perform the functionality as described herein, thecentral control system 100 includes one or more processor circuits thatare configured to execute machine-readable instructions stored in one ormore nontransitory computer-readable mediums, such as a RAM circuitand/or ROM circuit. It should be readily understood that the centralcontrol system 100 may include other components for performing theoperations described herein such as, but not limited to, communicationtransceivers, routers, input/output communication interfaces, databases,among others.

In one form, the location module 102 is configured to obtain the imagedata from the infrastructure sensors 60, detect the objects 30 and therobots 20 based on the image data, and determine the location of theobjects 30 and the robots 20 based on the image data. As an example, thelocation module 102 employs known digital image recognition techniquesto process the image data and locate the objects 30 and the robots 20captured by the infrastructure sensors 60. The location module 102 thendetermines the location of the identified objects 30 and the identifiedrobots 20 based on the image data and a digital map representing themanufacturing environment 10, and the location module 102 stores thedetermined locations in the object location database 104. In some forms,the location module 102 may also provide additional characteristics ofthe object 30 and/or robots 20, such an object type, traveldirection/speed if the object 30 and/or robot 20 is moving, amongothers. While the location module 102 is provided as determining thelocation of the robots 20 based on the image data from theinfrastructure sensors 60, the location module 102 may determine thelocation of the robots 20 based on based on sensor data from the one ormore autonomous navigation sensors 26 of the robot 20 (e.g., locationdata from a GNSS sensor of the robot 20).

Furthermore, the location module 102 is configured to detectobstructions within an area surrounding the detected objects 30. Thelocation module 102 is configured to detect obstructions both staticallyand as both the robots 20 and objects 30 autonomously move within themanufacturing environment 10, as described below in further detail. Asan example, the location module 102 employs known digital imagerecognition techniques to process the image data and locate theobstructions captured by the infrastructure sensors 60. In some forms,the obstructions in the surrounding area include, but are not limitedto, an additional object 30, robot 20, and/or operator, among others.

In one form, the object state module 106 is configured to obtain statedata from the objects 30 and store said state data in the object statedatabase 108. As an example, the object state module 106 receives statedata from the object movement systems 32 of the objects 30, where thestate data indicates whether the object 30 is moveable, whether theobject 30 is available to be moved, whether one of the robots 20 isrequesting to move the object 30, among others.

In one form, the hierarchy module 110 is configured to determine ahierarchal relationship among the robots 20 and store said hierarchalrelationship in the hierarchy database 112. More specifically, thehierarchy module 110 defines movement priorities of each of the robots20. In one form, the movement priorities may be predefined. In anotherform, the movement priorities may be dynamically updated based on acurrent task performed by the robots 20. As described below in furtherdetail, the object movement module 122 may selectively instruct one ofthe objects 30 to autonomously move based on the movement prioritiesassociated with the robots 20.

In one form, the manufacturing process module 114 is configured todefine a manufacturing process and associated task to be performed byone of the robots 20 within the manufacturing environment 10. As anexample, a list of manufacturing processes/tasks may be predefined andstored in a database, and a manufacturing process/task may be selectedbased on a status of one or more of manufacturing processes of the list(e.g., if a production process is completed, the manufacturing processmodule 114 may define an inspection process as the manufacturing processto be performed by the robots 20). Furthermore, the manufacturingprocess module 114 may also select a destination associated with themanufacturing process/task. Accordingly, the robot selection module 116may select a robot from among the robots 20 to perform the associatedtask based on the destination, a configuration of the robot 20, and/oravailability of the robot 20.

In one form, the robot path module 118 is configured to define a plannedpath for the robots 20 based on the location of the selected robot 20, agiven destination associated with the manufacturing process, and/or thetask to be performed by the robot 20. As an example, the manufacturingprocess corresponds to the robot 20 traveling to the bin 40, and thus,the planned route is provided between the current location of the robot20 to the destination, which is the bin 40. In one form, the robot pathmodule 118 is configured to determine the planned route as the shortesttravel path for the robot 20 to the bin 40. In some forms, the robotpath module 118 may define the planned path for the robots 20 based on adigital map of the manufacturing environment 10, where the digital mapidentifies the location of one or more of the objects 30 that aredefined as immoveable.

In one form, the autonomous navigation module 120 is configured toinstruct the robots 20 to autonomously navigate within the manufacturingenvironment 10 based on the planned route. As an example, the autonomousnavigation module 120 instructs the robots 20 to autonomously navigateby transmitting the planned path to the robot movement system 22 andinstructing the robot to travel to the destination based on the plannedpath. As another example, the autonomous navigation module 120 remotelyand autonomously controls the robots 20 as they travel to theirrespective destinations. To control the autonomous movement of the robot20, the autonomous navigation module 120 and/or the robot 20 may employknown autonomous navigation routines, such as a path planning routine, amaneuver planning routine, and/or a trajectory planning routine.

As the robot 20 autonomously travels along the planned route, the objectmovement module 122 is configured to determine whether any one of theobjects 30 obstructs the robot 20 and whether the object 30 is availableto be moved based on the state data associated with the object. If theobject 30 obstructs the robot 20 and is available to be moved because,for example, the state data indicates that the requesting robot 20 has ahigher movement priority than another requesting robot 20, the object 30is moveable, and/or the location module 102 determines that noobstructions are located in an area surrounding the object 30, theobject movement module 122 instructs the object 30 to autonomously moveto a designated position so that it does not obstruct the robot 20.Alternatively, if the object 30 obstructs the robot 20 and is notavailable to be moved because, for example, the state data indicatesanother robot 20 with a higher movement priority is requesting a move,the object 30 is immoveable, and/or the location module 102 determinesthat an obstruction is located in an area surrounding the object 30, theobject movement module 122 commands the robot path module 118 to definean alternative route for the robot 20 to avoid the object 30.

In the exemplary application provided by the manufacturing environment10 and as shown in FIGS. 2A-2D, robot 20-1 may autonomously navigate tothe bin 40 to retrieve parts in accordance with a given manufacturingprocess. As shown in FIG. 2A, the robot path module 118 may generate aplanned route 130 based on the displacement between the origin of robot20-1 and the bin 40 (i.e., the destination). As shown in FIG. 2B, whenthe robot 20-1 autonomously travels proximate to (i.e., adjacent and/ornear) a first object 30-1 (e.g., a wall), the object movement module 122determines whether the first object 30-1 can be moved based on statedata associated with the first object 30-1 and sensor data from theinfrastructure sensors 60. In this example, the object movement module122 determines that the object 30-1 is immoveable based on the statedata and, as such, commands the robot path module 118 to define analternative route 140 for the robot 20-1.

As the robot travels along alternative route 140, the robot 20-1approaches object 30-3 (e.g., mobile bins), as shown in FIG. 2C. Basedon the state data associated with object 30-3, the object movementmodule 122 determines robot 20-2 is requesting to move object 30-3, butthe robot 20-1 has a higher movement priority than robot 20-2.Accordingly, the object movement module 122 issues a command to moveobject 30-2 to enable the robot 20-1 to proceed along alternative route140. In one form, the object movement module 122 instructs the objectmovement system 32 (not shown) of the object 30-3 to autonomously moveto a position within the manufacturing environment 10 such that theobject 30-3 does not obstruct the robot 20-1 as it travels alongalternative route 140. In another form, the object movement module 122instructs an available robot 20 (e.g., robot 20-2) to initially move theobject 30-3 to a position within the manufacturing environment 10 suchthat the object 30-3 does not obstruct the robot 20-1 as it travelsalong alternative route 140. Subsequently, the object movement module122 instructs the robot 20-2 to return the object 30-3 to its originalposition or a predefined position.

As the robot 20-1 continues traveling along alternative route 140, therobot 20-1 subsequently approaches an area proximate to the object 30-2,as shown in FIG. 2C. Based on the state data associated with object30-2, the object movement module 122 determines that object 30-2 ismoveable and that robot 20-2 is not requesting to move the object 30-2.However, the object movement module 122 determines that object 30-2cannot be moved as a result of an obstruction detected by the locationmodule 102. More particularly, the location module 102 determines thatobject 30-6 is in a surrounding area of object 30-2 and obstructs themovement of object 30-2. As such, the object movement module 122commands the robot path module 118 to define another alternative route150 to avoid object 30-2.

As the robot 20-1 travels along alternative route 150 to the bin 40, therobot 20-1 approaches object 30-5. Based on the state data associatedwith object 30-5, the object movement module 122 determines robot 20-2is not requesting to move object 30-5, object 30-5 is moveable, and thatno obstructions are present in an area surrounding the object 30-5.Accordingly the object movement module 122 issues a command to theobject movement system 32 of the object 30-5 to autonomously move to alocation within the manufacturing environment 10 such that it does notobstruct the robot 20-1 as it travels along alternative route 150.

As such, and as shown in FIGS. 2A-2D, the central control system 100dynamically defines a route for the robot 20-1 that minimizes thedistance it travels and the required time to arrive at the bin 40. Moreparticularly, the robot path module 118 initially provides the plannedroute 130 for the robot 20-1 and dynamically updates the route of therobot (i.e., alternative routes 140, 150) based on the state dataassociated with the objects 30 and the sensor data from theinfrastructure sensors 60.

Referring to FIG. 3, a routine 300 for moving objects 30 within themanufacturing environment 10 as the robot 20 autonomously navigates isshown and performed by the central control system 100. At 304, thecentral control system 100 selects a destination for the robot 20 in themanufacturing environment 10. At 308, the central control system 100defines a planned route based on the destination and the origin of therobot 20 and instructs the robot 20 to travel along the planned route.At 312, the central control system 100 determines whether the robot 20is proximate to one of the objects 30 as it travels along the plannedroute. If so, the routine 300 proceeds to 316. Otherwise, if the robot20 is not proximate to one of the objects 30 as it travels along theplanned route, the routine 300 proceeds to 328. At 316, the centralcontrol system 100 determines whether the object 30 is available to bemoved based on the state data. If so, the routine 300 proceeds to 320,where the central control system 100 instructs the object 30 to movesuch that it does not obstruct the robot 20. Otherwise, if the centralcontrol system 100 determines that the object 30 is unavailable to bemoved, the routine 300 proceeds to 324, where the central control system100 defines an alternative route based on the location of the robot 20and the destination and then proceeds to 328. At 328, the centralcontrol system 100 determines whether the robot 20 has reached thedestination. If the robot 20 has not reached the destination, theroutine 300 proceeds to 312. Otherwise, if the robot 20 has reached thedestination, the routine 300 ends.

Referring to FIG. 4, another routine 400 for moving objects 30 withinthe manufacturing environment 10 as the robot 20 autonomously navigatesis shown. At 404, the central control system 100 the central controlsystem 100 performs the object movement routine (e.g., routine 300described above with reference to FIG. 3) as the robot 20 autonomouslynavigates to a given destination. At 408, the central control system 100determines whether an object 30 is available to be moved and the taskrequires the robot 20 to interact with the object 30. If so, the routine400 proceeds to 412, where the central control system 100 instructs theobject 30 to move such that it enables the robot 20 to more efficientlyperform the task associated with the manufacturing process, and theroutine 400 then proceeds to 416. Otherwise, if the object 30 isunavailable to be moved, the routine 400 proceeds to 416, where therobot 20 performs the task associated with the manufacturing process.

It should be readily understood that the routines 300 and 400 are justexample implementations of the central control system 100 and othercontrol routines may be implemented.

Unless otherwise expressly indicated herein, all numerical valuesindicating mechanical/thermal properties, compositional percentages,dimensions and/or tolerances, or other characteristics are to beunderstood as modified by the word “about” or “approximately” indescribing the scope of the present disclosure. This modification isdesired for various reasons including industrial practice; material,manufacturing, and assembly tolerances; and testing capability.

As used herein, the phrase at least one of A, B, and C should beconstrued to mean a logical (A OR B OR C), using a non-exclusive logicalOR, and should not be construed to mean “at least one of A, at least oneof B, and at least one of C.”

The description of the disclosure is merely exemplary in nature and,thus, variations that do not depart from the substance of the disclosureare intended to be within the scope of the disclosure. Such variationsare not to be regarded as a departure from the spirit and scope of thedisclosure.

In the figures, the direction of an arrow, as indicated by thearrowhead, generally demonstrates the flow of information (such as dataor instructions) that is of interest to the illustration. For example,when element A and element B exchange a variety of information, butinformation transmitted from element A to element B is relevant to theillustration, the arrow may point from element A to element B. Thisunidirectional arrow does not imply that no other information istransmitted from element B to element A. Further, for information sentfrom element A to element B, element B may send requests for, or receiptacknowledgements of, the information to element A.

In this application, the term “module” and/or “controller” may refer to,be part of, or include: an Application Specific Integrated Circuit(ASIC); a digital, analog, or mixed analog/digital discrete circuit; adigital, analog, or mixed analog/digital integrated circuit; acombinational logic circuit; a field programmable gate array (FPGA); aprocessor circuit (shared, dedicated, or group) that executes code; amemory circuit (shared, dedicated, or group) that stores code executedby the processor circuit; other suitable hardware components thatprovide the described functionality; or a combination of some or all ofthe above, such as in a system-on-chip.

The term memory is a subset of the term computer-readable medium. Theterm computer-readable medium, as used herein, does not encompasstransitory electrical or electromagnetic signals propagating through amedium (such as on a carrier wave); the term computer-readable mediummay therefore be considered tangible and non-transitory. Non-limitingexamples of a non-transitory, tangible computer-readable medium arenonvolatile memory circuits (such as a flash memory circuit, an erasableprogrammable read-only memory circuit, or a mask read-only circuit),volatile memory circuits (such as a static random access memory circuitor a dynamic random access memory circuit), magnetic storage media (suchas an analog or digital magnetic tape or a hard disk drive), and opticalstorage media (such as a CD, a DVD, or a Blu-ray Disc).

The apparatuses and methods described in this application may bepartially or fully implemented by a special purpose computer created byconfiguring a general-purpose computer to execute one or more particularfunctions embodied in computer programs. The functional blocks,flowchart components, and other elements described above serve assoftware specifications, which can be translated into the computerprograms by the routine work of a skilled technician or programmer.

What is claimed is:
 1. A method for navigating a robot within anenvironment based on a planned route, the method comprising: providingthe planned route to the robot, wherein the planned route is based on adestination of the robot and an origin of the robot; determining whetheran object obstructs the robot as the robot travels along the plannedroute, wherein the environment includes the object; and moving theobject from the planned route in response to the object obstructing therobot.
 2. The method of claim 1, wherein the object includes a movementsystem for moving the object to various positions within theenvironment, and wherein moving the object further comprises instructingthe object to autonomously move to a position from among the variouspositions.
 3. The method of claim 1, wherein moving the object furthercomprises instructing a second robot to move the object.
 4. The methodof claim 1 further comprising: determining whether the object isavailable to be moved based on at least one of state data associatedwith the object and sensor data obtained from one or more infrastructuresensors; and moving the object when the robot is proximate the object inresponse to a determination that the object is available to be moved. 5.The method of claim 4 further comprising defining an alternative routebased on the destination and a location of the object in response to adetermination that the object is not available to be moved.
 6. Themethod of claim 4, wherein: the state data indicates whether a secondrobot is requesting to move the object, whether the object is moveable,or a combination thereof; and the sensor data corresponds to an areasurrounding the object and indicates whether the object can be movedbased on one or more additional objects in the area surrounding theobject.
 7. The method of claim 6, wherein the sensor data is image dataobtained from the infrastructure sensors.
 8. A method for navigating arobot within an environment based on a planned route, the methodcomprising: providing the planned route to the robot, wherein theplanned route is based on a destination of the robot and an origin ofthe robot; determining whether an object obstructs the robot as therobot travels along the planned route, wherein the environment includesthe object; determining whether the object is available to be moved; andmoving the object from the planned route in response to the objectobstructing the robot and in response to the object being available tobe moved.
 9. The method of claim 8, wherein the object includes amovement system for moving the object to various positions within theenvironment, and wherein moving the object further comprises instructingthe object to autonomously move to a position from among the variouspositions.
 10. The method of claim 8, wherein moving the object furthercomprises instructing a second robot to move the object.
 11. The methodof claim 8, wherein determining whether the object is available to bemoved is further based on at least one of state data associated with theobject and sensor data obtained from one or more infrastructure sensors.12. The method of claim 11, wherein: the state data indicates whether asecond robot is requesting to move the object, whether the object ismoveable, or a combination thereof; and the sensor data corresponds toan area surrounding the object and indicates whether the object can bemoved based on one or more additional objects in the area surroundingthe object.
 13. The method of claim 12, wherein the sensor data is imagedata obtained from the infrastructure sensors.
 14. The method of claim12, wherein the state data indicates a hierarchal relationship betweenthe robot and the second robot.
 15. The method of claim 14, determiningwhether the object is available to be moved further comprises:determining whether the hierarchal relationship indicates the secondrobot has a movement priority over the robot; and in response to thehierarchal relationship indicating that the second robot has themovement priority over the robot, determining whether the second robothas completed a request to move the object.
 16. The method of claim 15,further comprising moving the object to an original position in responseto the second robot completing the request to move the object.
 17. Themethod of claim 8 further comprising defining an alternative route basedon the destination and a location of the object in response to adetermination that the object is not available to be moved.
 18. A systemfor navigating a robot within an environment based on a planned route,the system comprising: a processor communicably coupled to the robot;and a nontransitory computer-readable medium including instructions thatare executable by the processor, wherein the instructions include:providing a destination for the robot within the environment; providingthe planned route to the robot, wherein the planned route is based onthe destination of the robot and an origin of the robot; determiningwhether an object obstructs the robot as the robot travels along theplanned route, wherein the environment includes the object; and movingthe object from the planned route in response to the object obstructingthe robot.
 19. The system of claim 18, wherein the instructions formoving the object further comprises at least one of instructing theobject to autonomously move to a position from among various positionsand instructing a second robot to move the object.
 20. The system ofclaim 18, wherein the instructions further comprise: determining whetherthe object is available to be moved based on at least one of stateassociated with the object and sensor data obtained from one or moreinfrastructure sensors; and moving the object when the robot isproximate the object in response to a determination that the object isavailable to be moved.